<?php

use Workerman\Worker;
use Workerman\Connection\TcpConnection;
use Workerman\Protocols\Http\Request;

require_once __DIR__ . '../vendor/autoload.php';

//有必要注意下代码是运行在主进程还是子进程，一般来说在Worker::runAll();
//调用前运行的代码都是在主进程运行的，onXXX回调运行的代码都属于子进程。
//注意写在Worker::runAll();后面的代码永远不会被执行。

// 创建一个Worker监听2345端口，使用http协议通讯
// 运行在主进程
$http_worker = new Worker('http://0.0.0.0:2345');

// 启动4个进程对外提供服务
$http_worker->count = 4;

// 接收到浏览器发送的数据时回复hello word到浏览器
// 赋值过程运行在主进程
$http_worker->onMessage = function (TcpConnection $connection, Request $request) {
    // 向浏览器发送hello world
    // 这部分运行在子进程
    $connection->send('hello world');
};

Worker::runAll();